/*
 * Copyright (c) 2006, 2023, webrx.cn All rights reserved.
 *
 */

package cn.webrx;

import java.lang.reflect.Proxy;

/**
 * <p>Project: jse2303 - ProxyDyMovie</p>
 * <p>Powered by webrx On 2023-07-28 17:43:42</p>
 * <p>描述：<p>
 *
 * @author webrx [webrx@126.com]
 * @version 1.0
 * @since 17
 */
public class ProxyDyMovie {

    public static void main(String[] args) {
        Movie proxym = createProxyMovie(new AMovie("动作片"));
        proxym.play();
        //
        proxym.show();

        //System.out.println(proxym.pf(3));

    }


    static Movie createProxyMovie(Movie movie) {
        return (Movie) Proxy.newProxyInstance(ProxyDyMovie.class.getClassLoader(), new Class<?>[]{Movie.class}, (p, m, a) -> {
            //代理过程中插入其他操作
            //1、输出开始时间
            System.out.println("公告：最新片子。。。。");
            //2、执行目标方法
            Object result = m.invoke(movie, a);

            //3、
            System.out.println("电影结束了，买个哥斯拉模型");
            //4、输出结束时间
            return result;
        });

    }
}
